package com.chixing.day12_date_factory;


import com.chixing.day05_oop.static_demo.SortUtil;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class DateDemo {
    public static void main(String[] args) {
        java.util.Date date1;
        java.sql.Date date2;
        /*
        * LocalDate:表示日期 年月日
        * LocalTime :表示时间 时分秒
        * LocalDateTime :表示日期时间 年月日时分秒
        * DateTimeFormatter:日期时间格式化
        * Instance:时间戳 表示一个特定的时间瞬间
        * Duration:用于计算两个时间(时分秒)的距离
        * Period:用于极端两个日期（年月日）的距离
        * ZonedDateTime:包含时区的时间
        * */


        //创建指定日期
        LocalDate date = LocalDate.of(2022,3,5);
        System.out.println("指定日期是:" + date);

        //得到当前日期
        LocalDate now = LocalDate.now();
        System.out.println("当前日期是:" + now);

        //获取日期信息
        System.out.println("年: " + now.getYear());
        System.out.println("月: " + now.getMonthValue());
        System.out.println("日: " + now.getDayOfMonth());
        System.out.println("星期: " + now.getDayOfWeek());
        System.out.println("一年中的第:" + now.getDayOfYear() + "天");

        //得到指定时间
        LocalTime localTime = LocalTime.of(9,23,54,129_900_000);
        System.out.println("指定时间是: " + localTime);

        //得到当前时间
        LocalTime now1 = LocalTime.now();
        System.out.println("当前时间是: " + now1);

        //获取时间信息
        System.out.println("小时: " + now1.getHour());
        System.out.println("分钟: " + now1.getMinute());
        System.out.println("秒: " + now1.getSecond());
        System.out.println("分钟: " + now1.getNano());



        //获取指定日期时间
        LocalDateTime localDateTime = LocalDateTime.of(2022,8,7,12,23,43,123);
        System.out.println("指定日期时间是: " + localDateTime);

        //得到当前日期时间
        LocalDateTime now2 = LocalDateTime.now();
        System.out.println("得到日期时间是: " + now2);

        //获得日期时间
        System.out.println("年: " + now2.getYear());
        System.out.println("月: " + now2.getMonthValue());
        System.out.println("日: " + now2.getDayOfWeek());
        System.out.println("小时: " + now2.getHour());
        System.out.println("分钟: " + now2.getMinute());
        System.out.println("秒: " + now2.getSecond());
        System.out.println("纳秒: " + now2.getNano());



        //对日期时间修改
        LocalDateTime now3 = LocalDateTime.now();
        System.out.println("当前系统日期: " + now3);
        //修改日期时间
        LocalDateTime year = now3.withYear(2071);
        System.out.println("修改的年份是: " + year);
        System.out.println("now3 == year: " + (now3==year));
        System.out.println("修改的月份:  " + now3.withMonth(9));
        System.out.println("修改的日:  " + now3.withDayOfMonth(12));
        System.out.println("修改的小时: " + now3.withHour(5));
        System.out.println("修改的分钟: " + now3.withMinute(23));
        System.out.println("修改的秒: " + now3.withSecond(54));
        System.out.println("修改的纳秒 ： "+ now3.withNano(123));

        //在当前对象上加上指定的时间
        LocalDateTime localDateTime1 = now2.plusDays(5);
        System.out.println("5天后: " + localDateTime1);
        System.out.println("十年后" + now2.plusYears(10));

        //在当前对象上减去指定的时间
        System.out.println("20年前: " + now2.minusYears(20));
        System.out.println("5个月前: " + now2.minusMonths(5));
        System.out.println("100天前: " + now2.minusDays(100));


        //DateTimeFormatter类进行时间日期格式化
        //得到当前日期
        LocalDateTime now4 = localDateTime.now();
        //将当前日期格式化
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");










    }

}
